/***************************************************************************
 创建者: 华磊
 开始时间: 2019.4.27
 copyright: (C) 华友高科
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 example (1) hualei 2017.5.8 类的具体实现代码编写

 ***************************************************************************
 *  @file x.h
 *  功能:把指令正则表达式匹配单独提取到本类，以实现和hmi复用
 ***************************************************************************/

#ifndef PROGRAMSIMPLECHECK_H
#define PROGRAMSIMPLECHECK_H

#include <QString>
#include <QRegExp>

class ProgramSimpleCheck
{
public:
    ProgramSimpleCheck();
    /**
     * @brief patExtractInstructionType 获取字符串所属指令类型
     * @param str
     * @return
     */
    int patExtractInstructionType(QString str);

private:

    int initialInstructionSimpleRegExp();

private:
     //-----------------简单指令分类用正则表达式　　开始－－－－－－－－－
     //MOTION
     QRegExp rx_motion;
     //JUMP
     QRegExp rx_jmp;
     //LABEL
     QRegExp rx_label;
     //IO
     QRegExp rx_io;
     //CALL
     QRegExp rx_call;
     //IF
     QRegExp rx_if;
     //SELECT
     QRegExp rx_select;
     //RUN
     QRegExp rx_run;
     //FOR
     QRegExp rx_for;
     QRegExp rx_endfor;
     //REGISTER
     QRegExp rx_register;
     QRegExp rx_GRegister;
     //PAL
     QRegExp rx_pal;
     //UFRAME UTOOL
     QRegExp rx_coordinate;
     //WAIT
     QRegExp rx_wait;
     //注释
     QRegExp rx_anotation;
     QRegExp rx_anotationExtFunc;

     //MOTION_SKIP
 //    QRegExp rx_motion_skip;
     //PAUSE
     QRegExp rx_pause;
     //ABORT
     QRegExp rx_abort;
     //END
     QRegExp rx_end;
     //UALM
     QRegExp rx_ualm;
     //MESSAGE
     QRegExp rx_message;
     //OVERRIDE
     QRegExp rx_override;
     //TIMER
     QRegExp rx_timer;
     //RSR
     QRegExp rx_rsr;

     QRegExp rx_gripper;
     // MODBUS_START
     QRegExp rx_modbusStart;
     // MODBUS_READ
     QRegExp rx_modbusRead;
     // MODBUS_WRITE
     QRegExp rx_modbusWrite;
     // MOVE_MAG
     QRegExp rx_moveMag;
     // MOVE_FREE
     QRegExp rx_moveFree;
     // WAIT_COMMANT
     QRegExp rx_waitCommand;

     QRegExp rx_tcpStart;
     QRegExp rx_tcpRead;
     QRegExp rx_tcpWrite;

     QRegExp rx_music;
     QRegExp rx_setOdom;

     QRegExp rx_charging;
     QRegExp rx_lift;

     QRegExp rx_loadMap;

     QRegExp rx_checkBattery;

     QRegExp rx_robotMove;

     QRegExp rx_roller;

     QRegExp rx_visionRun;
     QRegExp rx_visionClearData;
     QRegExp rx_visionGetData;
     QRegExp rx_visionTrigger;

     QRegExp rx_trackStart;
     QRegExp rx_trackEnd;
     QRegExp rx_trackGetData;
     QRegExp rx_axisMove;

     QRegExp rx_regPr;
     QRegExp rx_regPl;
     QRegExp rx_regWeldStart;
     QRegExp rx_regWeldEnd;
     QRegExp rx_regWeave;
     QRegExp rx_regWeaveEnd;
     QRegExp rx_regTrackWeldTast;
     QRegExp rx_regTrackWeldEnd;
     QRegExp rx_regWatchDI;
     QRegExp rx_laserCameraFetchPoint;
     QRegExp rx_laserCameraControl;
     QRegExp rx_laserCameraTrack;
     QRegExp rx_laserScan;
     QRegExp rx_bufferMove;
     QRegExp rx_gcode;
     QRegExp rx_mcode;
     //-----------------简单指令分类用正则表达式　　结束－－－－－－－－－

};

#endif // PROGRAMSIMPLECHECK_H
